/* echostate.c  
 *   功能: 报告文件描述符 0（标准输入）的终端驱动程序中回显（ECHO）位的当前状态  
 *   说明: 演示如何从驱动程序读取属性并测试某个位  
 */  

#include <stdio.h>  
#include <stdlib.h>  
#include <termios.h>  
#include <unistd.h>  

int main(void)  
{  
    struct termios info; // 用于存储终端属性  
    int rv;  

    // 获取标准输入（文件描述符 0）的终端属性  
    rv = tcgetattr(STDIN_FILENO, &info);  
    if (rv == -1) {  
        perror("tcgetattr 失败");  
        exit(EXIT_FAILURE);  
    }  

    // 检查 ECHO 标志位是否被设置  
    if (info.c_lflag & ECHO) {  
        printf("回显（ECHO）功能已开启。\n");  
    } else {  
        printf("回显（ECHO）功能已关闭。\n");  
    }  

    return EXIT_SUCCESS;  
}